package com.zzyl.nursing.util;

import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class ElderUtils {

    /**
     * 根据出生日期字符串计算年龄
     *
     * @param birthdayStr 出生日期字符串，格式应为 yyyy-MM-dd
     * @return 年龄
     */
    public static int calculateAge(String birthdayStr) {
        if (birthdayStr == null || birthdayStr.isEmpty()) {
            return 0;
        }

        try {
            // 定义日期格式（可根据实际格式调整）
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

            // 解析字符串为 LocalDate
            LocalDate birthDate = LocalDate.parse(birthdayStr, formatter);

            // 计算年龄
            return Period.between(birthDate, LocalDate.now()).getYears();
        } catch (DateTimeParseException e) {
            // 如果格式错误，可以记录日志或抛出自定义异常
            throw new IllegalArgumentException("出生日期格式不正确，应为 yyyy-MM-dd", e);
        }
    }
}
